package com.design.ProxyMode.dynamicMode;

/**
 * 动态代理模式 推荐
 *      不需要在程序运行前为被代理类创建代理类，而是在程序运行中，动态的创建代理类，然后使用这些动态生成的代理类替代原始类
 *
 * 定义：
 *      1.创建接口类
 *      2.接口实现类
 *      3.定义动态代理及Handler
 *      4.调用
 *          4.1 实例化动态代理类
 *          4.2 调用创建代理方法 -> 传入接口实现类 = 强转为接口
 *          4.3 适用接口对象调用接口方法
 */
public class main {

    public static void main(String[] args) {
        DynamicUserUserProxy proxy = new DynamicUserUserProxy();
        IUserService service = (IUserService) proxy.createProxy(new UserService());
        Boolean login = service.login("zhangsan", "123456");
        System.out.println("login result :" +login);
    }

}
